package com.tabjin.rfidsocket.service.sys;

import com.tabjin.rfidsocket.common.utils.PagedGridResult;
import com.tabjin.rfidsocket.pojo.SysUser;
import com.tabjin.rfidsocket.pojo.bo.SysUserBO;
import com.tabjin.rfidsocket.pojo.bo.WxRegisterBO;
import com.tabjin.rfidsocket.pojo.vo.SysUserVO;

import java.util.List;
import java.util.Optional;

public interface SysUserService {
    SysUserVO add(SysUserBO sysUserBO);

    Optional<Integer> delete(Integer userId);

    SysUserVO update(SysUserBO sysUserBO);

    void activeUser(Integer userId, Integer status);

    Optional<SysUserVO> findByKeyword(String keyword);

    Optional<SysUser> findOne(Integer userId);

    PagedGridResult getAll(Integer page, Integer pageSize);

    List<SysUser> getAll();

    List<SysUser> getUsersByDeptId(Integer deptId);

    SysUser searchUserById(Integer userId);

    Optional<List<SysUserVO>> searchUsersByIdList(List<Integer> userIdList);

    /**
     * 微信注册
     *
     * @param wxRegisterBO
     * @return
     */
    Optional<List<SysUser>> wxRegister(WxRegisterBO wxRegisterBO);
}
